package com.chenfan.mcn.model.dto;

import com.chenfan.common.extension.validation.groups.Add;
import com.chenfan.common.extension.validation.groups.Modify;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 红人返点合同DTO
 *
 * @author wulg
 * @date 2021-11-17
 **/
@Data
public class StarRebateContractSaveDTO implements Serializable {

    private static final long serialVersionUID = 4394548650563651105L;

    /**
     * 主键ID
     */
    @NotNull(message ="主键ID不能为空" , groups ={Modify.class})
    private Long id;

    /**
     * 单据状态
     */
    @NotNull(message ="单据状态不能为空" , groups ={Modify.class})
    private Integer approvalStatus;

    /**
     * 返点比例
     */
    @NotNull(message ="返点比例不能为空" , groups ={Add.class, Modify.class})
    private BigDecimal rebateRatio;

    /**
     * 返点金额
     */
    @NotNull(message ="返点金额不能为空" , groups ={Add.class, Modify.class})
    private BigDecimal rebateAmount;

    /**
     * 红人ID
     */
    @NotNull(message ="红人昵称不能为空" , groups ={Add.class, Modify.class})
    private Long starId;

    /**
     * 我司签约主体ID
     */
    @NotNull(message ="我司签约主体ID不能为空" , groups ={Add.class, Modify.class})
    private Long contractingId;

    /**
     * 红人开票信息id
     */
    @NotNull(message ="红人开票信息id不能为空" , groups ={Add.class, Modify.class})
    private Long starBillingId;

    /**
     * 年框合同主键ID
     */
    private Long yearContractId;

    /**
     * 年框合同编号
     */
    private String yearContractCode;

    /**
     * 上传合同
     */
    @NotBlank(message ="上传合同不能为空" , groups ={Add.class, Modify.class})
    private String contractFile;

    /**
     * 备注
     */
    private String remark;

    /**
     * 绑定的执行单ID集合
     */
    private List<Long> excutionOrderIds;
}
